package com.company.control;

import com.company.bean.UserInfoBean;
import com.company.model.UserModel;
import com.company.util.Myutils;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet(name = "UserInfoDeleteServlet", value = "/deleteJump")
public class UserInfoDeleteServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //1.获取表单数据
        String strUserID = request.getParameter("id");

        //2.调用service方法进行删除操作
        /**
         * 两种删除方式：
         * 物理删除：直接删除数据库表中的数据，数据删除之后不可恢复
         *
         * 逻辑删除：通过修改逻辑状态来表示数据是删除状态，
         * 时间库中的数据不会进行删除：【update修改状态的操作】
         * 注意：如果使用逻辑删除，则需要在查询的时候，将逻辑标志为作为查询条件进行过滤
         */
        //使用物理删除：删除数据
        //int  i = Myutils.getNewIntance(UserModel.class).deleteUserInfoById(strUserID);

        //逻辑删除，需要对数据库进行改造
        int i  = Myutils.getNewIntance(UserModel.class)
                .LogicollyDeleteUserInfoById(strUserID);

        //3.删除之后的数据显示--跳转到查询页面即可
        //调用Model层进行查询操作，将用户数据查询出来，保存到session中
        List<UserInfoBean> listUsers = Myutils.getNewIntance(UserModel.class).queryUserInfoAll();
        //在跳转之前，需要将显示在成功页面的数据进行session缓存
        request.getSession().setAttribute("listUsers",listUsers);

        request.getRequestDispatcher("WEB-INF/viewpages/userinfoB/UserInfoAddDetail.jsp")
                .forward(request,response);
    }
}
